// #include "iostream"
// #include "vector"

// using namespace std;

// int target;
// vector<vector<int>> array1(5, vector<int>(5));

// class Solution
// {
// public:
//     bool Find(int target, vector<vector<int>> array)
//     {
//         int i = 0;
//         int j = array[0].size() - 1;

//         while (i < array.size() && j >= 0)
//         {
//             if (target > array[i][j])
//             {
//                 i++;
//             }
//             else if (target < array[i][j])
//             {
//                 j--;
//             }
//             else
//             {
//                 return true;
//             }
//         }

//         return false;
//     }
// };

// int main()
// {
//     cin >> target;
//     for (int i = 0; i < 5; i++)
//     {
//         for (int j = 0; j < 5; j++)
//         {
//             cin >> array1[i][j];
//         }
//     }

//     Solution s;
//     bool ret = s.Find(target, array1);
//     cout << ret << endl;
// }



// #include <iostream>
// #include <vector>

// using namespace std;

// vector<int> array1;

// class Solution
// {
// public:
//     int minNumberInRotateArray(vector<int> array1)
//     {
//         if(array1.empty())
//         {
//             return 0;
//         }

//         int left = 0, right = array1.size() - 1;
//         int mid = 0;

//         while(array1[left] >= array1[right])
//         {
//             if(right - left == 1)
//             {
//                 mid = right;
//                 break;
//             }

//             mid = (right + left) >> 1;

//             if(array1[left] == array1[right] && array1[right] == array1[mid])
//             {
//                 int result = array1[left];
//                 for(int i = left + 1 ; i < right; i++)
//                 {
//                     if(result > array1[i])
//                     {
//                         result = array1[i];
//                     }
//                 }
//                 return result;
//             }

//             if(array1[mid] >= array1[left])
//             {
//                 left = mid;
//             }
//             else
//             {
//                 right = mid;
//             }
//         }
    
//         return array1[mid];
//     }
// };

// int main()
// {
//     int n;
//     while(cin >> n)
//     {
//         array1.push_back(n);
//     }

//     Solution s;
//     int ret = s.minNumberInRotateArray(array1);
//     cout << ret << endl;
//     return 0;
// }

//#include <cstdio>
//#include <iostream>
//
//#define MAX(a, b) ((a) > (b) ? (a) : (b))
//
//int main()
//{
//    int x = 5;
//    int y = 8;
//
//    int z = MAX(x++, y++);
//    printf("x=%d y=%d z=%d\n", x, y, z);
//    return 0;
//}
//

#include <stdio.h>
#include <string.h>
#include <cstdio>

int main()
{
    char str[100] = {'0'};
    int i = 0;
    int len = 0;
    gets(str);
    len = strlen(str); //计算输入字符串的长度；
    for(i = 0; i < (len / 2); i++) //只需要判断前一半（len/2）长度就好了
    { 
        if(str[i] != str[len - 1 - i]) //判断是否为回文数；
        {
        printf("不是回文数\n");
        return 0;
        }
    }
    printf("是回文数\n");

    return 0;
}
